\hypertarget{structfilter_b_l_m_s___g_p_u}{
\section{\-Dokumentacja struktury filter\-B\-L\-M\-S\-\_\-\-G\-P\-U}
\label{structfilter_b_l_m_s___g_p_u}\index{filter\-B\-L\-M\-S\-\_\-\-G\-P\-U@{filter\-B\-L\-M\-S\-\_\-\-G\-P\-U}}
}


\-Filtr \-B\-L\-M\-S -\/ wersja \-G\-P\-U, \-F\-F\-T na \-G\-P\-U/\-C\-P\-U (\-C\-U\-F\-F\-T/\-F\-F\-T\-W).  




{\ttfamily \#include $<$filter\-B\-L\-M\-S\-\_\-\-G\-P\-U.\-h$>$}

\subsection*{\-Metody publiczne}
\begin{DoxyCompactItemize}
\item 
\hyperlink{structfilter_b_l_m_s___g_p_u_a9af8ca7696ee2c4160cb076f054e74bd}{filter\-B\-L\-M\-S\-\_\-\-G\-P\-U} (int \-Nu, int \-Msize, int \-Bsize, float mi\-Param, float beta\-Param, \hyperlink{struct_signal_reader_writer}{\-Signal\-Reader\-Writer} \-S\-R\-W)
\item 
\hyperlink{structfilter_b_l_m_s___g_p_u_a80fe9e10dac37307cfe41ca1b666811f}{$\sim$filter\-B\-L\-M\-S\-\_\-\-G\-P\-U} ()
\item 
void \hyperlink{structfilter_b_l_m_s___g_p_u_a2ace1d987956f5e1fc61393543151f92}{data\-Filtering} (int blocks\-Per\-Grid, int threads\-Per\-Block, int \-Nu)
\item 
void \hyperlink{structfilter_b_l_m_s___g_p_u_a1dbdd41a3fae46008f88366705171403}{free\-Memory} ()
\end{DoxyCompactItemize}
\subsection*{\-Atrybuty publiczne}
\begin{DoxyCompactItemize}
\item 
\hypertarget{structfilter_b_l_m_s___g_p_u_a8106b710c285e9edacb00cc5e62494bc}{
int \hyperlink{structfilter_b_l_m_s___g_p_u_a8106b710c285e9edacb00cc5e62494bc}{\-M}}
\label{structfilter_b_l_m_s___g_p_u_a8106b710c285e9edacb00cc5e62494bc}

\begin{DoxyCompactList}\small\item\em długość filtru \end{DoxyCompactList}\item 
\hypertarget{structfilter_b_l_m_s___g_p_u_a060f3b1efd9672eb6f08df07255a1397}{
int \hyperlink{structfilter_b_l_m_s___g_p_u_a060f3b1efd9672eb6f08df07255a1397}{\-B}}
\label{structfilter_b_l_m_s___g_p_u_a060f3b1efd9672eb6f08df07255a1397}

\begin{DoxyCompactList}\small\item\em długość bloku danych \end{DoxyCompactList}\item 
\hypertarget{structfilter_b_l_m_s___g_p_u_a86f142b407153b3695c60fb0f976265c}{
float \hyperlink{structfilter_b_l_m_s___g_p_u_a86f142b407153b3695c60fb0f976265c}{mi}}
\label{structfilter_b_l_m_s___g_p_u_a86f142b407153b3695c60fb0f976265c}

\begin{DoxyCompactList}\small\item\em parametr mi filtru \end{DoxyCompactList}\item 
\hypertarget{structfilter_b_l_m_s___g_p_u_ad95b7f945d3f931a7c024287350f29e5}{
float \hyperlink{structfilter_b_l_m_s___g_p_u_ad95b7f945d3f931a7c024287350f29e5}{beta}}
\label{structfilter_b_l_m_s___g_p_u_ad95b7f945d3f931a7c024287350f29e5}

\begin{DoxyCompactList}\small\item\em parametr beta filtru \end{DoxyCompactList}\item 
\hypertarget{structfilter_b_l_m_s___g_p_u_a9d13b58722bbbc665551ab34341e8cc2}{
cudacomplex $\ast$ \hyperlink{structfilter_b_l_m_s___g_p_u_a9d13b58722bbbc665551ab34341e8cc2}{u}}
\label{structfilter_b_l_m_s___g_p_u_a9d13b58722bbbc665551ab34341e8cc2}

\begin{DoxyCompactList}\small\item\em sygnał wejściowy u (input) \end{DoxyCompactList}\item 
\hypertarget{structfilter_b_l_m_s___g_p_u_aecda799d060aca988e1ffd448efc24b1}{
cudacomplex $\ast$ \hyperlink{structfilter_b_l_m_s___g_p_u_aecda799d060aca988e1ffd448efc24b1}{d}}
\label{structfilter_b_l_m_s___g_p_u_aecda799d060aca988e1ffd448efc24b1}

\begin{DoxyCompactList}\small\item\em sygnał wejściowy d (desired) \end{DoxyCompactList}\item 
\hypertarget{structfilter_b_l_m_s___g_p_u_a80f07a4d60f6d9639abe78a0c54b8f6d}{
cudacomplex $\ast$ \hyperlink{structfilter_b_l_m_s___g_p_u_a80f07a4d60f6d9639abe78a0c54b8f6d}{e}}
\label{structfilter_b_l_m_s___g_p_u_a80f07a4d60f6d9639abe78a0c54b8f6d}

\begin{DoxyCompactList}\small\item\em sygnał wyjściowy e (error) \end{DoxyCompactList}\item 
\hypertarget{structfilter_b_l_m_s___g_p_u_af3329d6f1ba767cd9ffe108677e1582d}{
cudacomplex $\ast$ \hyperlink{structfilter_b_l_m_s___g_p_u_af3329d6f1ba767cd9ffe108677e1582d}{buf\-\_\-u}}
\label{structfilter_b_l_m_s___g_p_u_af3329d6f1ba767cd9ffe108677e1582d}

\begin{DoxyCompactList}\small\item\em bufor zawierajacy dwa bloki sygnalu u \end{DoxyCompactList}\item 
\hypertarget{structfilter_b_l_m_s___g_p_u_a789f7955c15cfbbf1030bc61597cfdc6}{
cudacomplex $\ast$ \hyperlink{structfilter_b_l_m_s___g_p_u_a789f7955c15cfbbf1030bc61597cfdc6}{buf\-\_\-d}}
\label{structfilter_b_l_m_s___g_p_u_a789f7955c15cfbbf1030bc61597cfdc6}

\begin{DoxyCompactList}\small\item\em blok/bufor (dlugosc 2\-B) sygnalu d \end{DoxyCompactList}\item 
\hypertarget{structfilter_b_l_m_s___g_p_u_ada5ee65cb7e8025852846ab718b72799}{
cudacomplex $\ast$ \hyperlink{structfilter_b_l_m_s___g_p_u_ada5ee65cb7e8025852846ab718b72799}{buf\-\_\-y}}
\label{structfilter_b_l_m_s___g_p_u_ada5ee65cb7e8025852846ab718b72799}

\begin{DoxyCompactList}\small\item\em blok/bufor (dlugosc 2\-B ze wzgledu na pozniejsze dzialanie ifft) sygnalu wyjsciowego y \end{DoxyCompactList}\item 
\hypertarget{structfilter_b_l_m_s___g_p_u_a3b6a05e6f2dffbc43eb25eadae866e1d}{
cudacomplex $\ast$ \hyperlink{structfilter_b_l_m_s___g_p_u_a3b6a05e6f2dffbc43eb25eadae866e1d}{buf\-\_\-e}}
\label{structfilter_b_l_m_s___g_p_u_a3b6a05e6f2dffbc43eb25eadae866e1d}

\begin{DoxyCompactList}\small\item\em blok/bufor (dlugosc 2\-B) sygnalu e \end{DoxyCompactList}\item 
\hypertarget{structfilter_b_l_m_s___g_p_u_aa61689acf4aadbdad7a97dcb45abc613}{
cudacomplex $\ast$ \hyperlink{structfilter_b_l_m_s___g_p_u_aa61689acf4aadbdad7a97dcb45abc613}{lc}}
\label{structfilter_b_l_m_s___g_p_u_aa61689acf4aadbdad7a97dcb45abc613}

\begin{DoxyCompactList}\small\item\em wagi filtrów \end{DoxyCompactList}\item 
\hypertarget{structfilter_b_l_m_s___g_p_u_a05e61875ad3d8da480cc44ce7dd41ca6}{
float $\ast$ \hyperlink{structfilter_b_l_m_s___g_p_u_a05e61875ad3d8da480cc44ce7dd41ca6}{lambda}}
\label{structfilter_b_l_m_s___g_p_u_a05e61875ad3d8da480cc44ce7dd41ca6}

\begin{DoxyCompactList}\small\item\em parametry lambda \end{DoxyCompactList}\item 
\hypertarget{structfilter_b_l_m_s___g_p_u_ac89a3b29e50a562fc81ca3fd15824389}{
float $\ast$ \hyperlink{structfilter_b_l_m_s___g_p_u_ac89a3b29e50a562fc81ca3fd15824389}{dev\-\_\-lambda}}
\label{structfilter_b_l_m_s___g_p_u_ac89a3b29e50a562fc81ca3fd15824389}

\begin{DoxyCompactList}\small\item\em \-D\-E\-V\-I\-C\-E parametry lambda. \end{DoxyCompactList}\item 
\hypertarget{structfilter_b_l_m_s___g_p_u_aac67984e706866502d6d1c4ce16c8d0c}{
cudacomplex $\ast$ \hyperlink{structfilter_b_l_m_s___g_p_u_aac67984e706866502d6d1c4ce16c8d0c}{dev\-\_\-\-U}}
\label{structfilter_b_l_m_s___g_p_u_aac67984e706866502d6d1c4ce16c8d0c}

\begin{DoxyCompactList}\small\item\em \-D\-E\-V\-I\-C\-E bufor zawierajacy dwa bloki sygnalu u po dzialaniu \-F\-F\-T. \end{DoxyCompactList}\item 
\hypertarget{structfilter_b_l_m_s___g_p_u_a88dd7f7dad02bb5706df10a6c58bc118}{
cudacomplex $\ast$ \hyperlink{structfilter_b_l_m_s___g_p_u_a88dd7f7dad02bb5706df10a6c58bc118}{dev\-\_\-\-U\-\_\-sub}}
\label{structfilter_b_l_m_s___g_p_u_a88dd7f7dad02bb5706df10a6c58bc118}

\begin{DoxyCompactList}\small\item\em \-D\-E\-V\-I\-C\-E bufory 'podsygnalow' wejsciowych po \-F\-F\-T (2\-B wektorow o dlugosci \-M/\-B w postaci jednego wektora) \end{DoxyCompactList}\item 
\hypertarget{structfilter_b_l_m_s___g_p_u_af4d0b6a1b1ba60c7db606b0b90f1c27d}{
cudacomplex $\ast$ \hyperlink{structfilter_b_l_m_s___g_p_u_af4d0b6a1b1ba60c7db606b0b90f1c27d}{dev\-\_\-\-Y}}
\label{structfilter_b_l_m_s___g_p_u_af4d0b6a1b1ba60c7db606b0b90f1c27d}

\begin{DoxyCompactList}\small\item\em \-D\-E\-V\-I\-C\-E probki 'podsygnalow' wyjsciowych przed \-I\-F\-F\-T. \end{DoxyCompactList}\item 
\hypertarget{structfilter_b_l_m_s___g_p_u_ae99e2cc3b89e2906997b8f1e7ec200b8}{
cudacomplex $\ast$ \hyperlink{structfilter_b_l_m_s___g_p_u_ae99e2cc3b89e2906997b8f1e7ec200b8}{dev\-\_\-\-E}}
\label{structfilter_b_l_m_s___g_p_u_ae99e2cc3b89e2906997b8f1e7ec200b8}

\begin{DoxyCompactList}\small\item\em \-D\-E\-V\-I\-C\-E bufor zawierajacy dwa bloki sygnalu e po dzialaniu \-F\-F\-T. \end{DoxyCompactList}\item 
\hypertarget{structfilter_b_l_m_s___g_p_u_a81445051c860674a5e338534e653a848}{
cudacomplex $\ast$ \hyperlink{structfilter_b_l_m_s___g_p_u_a81445051c860674a5e338534e653a848}{dev\-\_\-lc}}
\label{structfilter_b_l_m_s___g_p_u_a81445051c860674a5e338534e653a848}

\begin{DoxyCompactList}\small\item\em \-D\-E\-V\-I\-C\-E wagi filtrow. \end{DoxyCompactList}\item 
\hypertarget{structfilter_b_l_m_s___g_p_u_a552a1af522267a114894677ad6c8caf6}{
cudacomplex $\ast$ \hyperlink{structfilter_b_l_m_s___g_p_u_a552a1af522267a114894677ad6c8caf6}{\-U}}
\label{structfilter_b_l_m_s___g_p_u_a552a1af522267a114894677ad6c8caf6}

\begin{DoxyCompactList}\small\item\em bufor zawierajacy dwa bloki sygnalu u po dzialaniu \-F\-F\-T \end{DoxyCompactList}\item 
\hypertarget{structfilter_b_l_m_s___g_p_u_a43a5d4058e12f9e70f4339236f3a1062}{
cudacomplex $\ast$ \hyperlink{structfilter_b_l_m_s___g_p_u_a43a5d4058e12f9e70f4339236f3a1062}{\-Y}}
\label{structfilter_b_l_m_s___g_p_u_a43a5d4058e12f9e70f4339236f3a1062}

\begin{DoxyCompactList}\small\item\em probki 'podsygnalow' wyjsciowych przed \-I\-F\-F\-T \end{DoxyCompactList}\item 
\hypertarget{structfilter_b_l_m_s___g_p_u_a5c6382b5cbbda4c4929da2bdc4f84b90}{
cudacomplex $\ast$ \hyperlink{structfilter_b_l_m_s___g_p_u_a5c6382b5cbbda4c4929da2bdc4f84b90}{\-E}}
\label{structfilter_b_l_m_s___g_p_u_a5c6382b5cbbda4c4929da2bdc4f84b90}

\begin{DoxyCompactList}\small\item\em bufor zawierajacy dwa bloki sygnalu e po dzialaniu \-F\-F\-T \end{DoxyCompactList}\item 
\hypertarget{structfilter_b_l_m_s___g_p_u_ad77285190534959544a011a49a9edb95}{
fftwf\-\_\-plan \hyperlink{structfilter_b_l_m_s___g_p_u_ad77285190534959544a011a49a9edb95}{fftwf\-Plan\-\_\-\-U}}
\label{structfilter_b_l_m_s___g_p_u_ad77285190534959544a011a49a9edb95}

\begin{DoxyCompactList}\small\item\em plan \-F\-F\-T \end{DoxyCompactList}\item 
\hypertarget{structfilter_b_l_m_s___g_p_u_ae715ea9fda3e1e7946a56f6f78321794}{
fftwf\-\_\-plan \hyperlink{structfilter_b_l_m_s___g_p_u_ae715ea9fda3e1e7946a56f6f78321794}{fftwf\-Plan\-\_\-\-Y}}
\label{structfilter_b_l_m_s___g_p_u_ae715ea9fda3e1e7946a56f6f78321794}

\begin{DoxyCompactList}\small\item\em plan \-I\-F\-F\-T \end{DoxyCompactList}\item 
\hypertarget{structfilter_b_l_m_s___g_p_u_a539bf7792bc70e7fafe5d209922edc79}{
fftwf\-\_\-plan \hyperlink{structfilter_b_l_m_s___g_p_u_a539bf7792bc70e7fafe5d209922edc79}{fftwf\-Plan\-\_\-\-E}}
\label{structfilter_b_l_m_s___g_p_u_a539bf7792bc70e7fafe5d209922edc79}

\begin{DoxyCompactList}\small\item\em plan \-F\-F\-T \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{\-Opis szczegółowy}
\-Filtr \-B\-L\-M\-S -\/ wersja \-G\-P\-U, \-F\-F\-T na \-G\-P\-U/\-C\-P\-U (\-C\-U\-F\-F\-T/\-F\-F\-T\-W). 

\-Opisuje filtr blokowy działający w oparciu o platformę \-C\-U\-D\-A. 

\subsection{\-Dokumentacja konstruktora i destruktora}
\hypertarget{structfilter_b_l_m_s___g_p_u_a9af8ca7696ee2c4160cb076f054e74bd}{
\index{filter\-B\-L\-M\-S\-\_\-\-G\-P\-U@{filter\-B\-L\-M\-S\-\_\-\-G\-P\-U}!filter\-B\-L\-M\-S\-\_\-\-G\-P\-U@{filter\-B\-L\-M\-S\-\_\-\-G\-P\-U}}
\index{filter\-B\-L\-M\-S\-\_\-\-G\-P\-U@{filter\-B\-L\-M\-S\-\_\-\-G\-P\-U}!filterBLMS_GPU@{filter\-B\-L\-M\-S\-\_\-\-G\-P\-U}}
\subsubsection[{filter\-B\-L\-M\-S\-\_\-\-G\-P\-U}]{\setlength{\rightskip}{0pt plus 5cm}filter\-B\-L\-M\-S\-\_\-\-G\-P\-U\-::filter\-B\-L\-M\-S\-\_\-\-G\-P\-U (
\begin{DoxyParamCaption}
\item[{int}]{\-Nu, }
\item[{int}]{\-Msize, }
\item[{int}]{\-Bsize, }
\item[{float}]{mi\-Param, }
\item[{float}]{beta\-Param, }
\item[{{\bf \-Signal\-Reader\-Writer}}]{\-S\-R\-W}
\end{DoxyParamCaption}
)}}
\label{structfilter_b_l_m_s___g_p_u_a9af8ca7696ee2c4160cb076f054e74bd}
\-Konstruktor struktury \hyperlink{structfilter_b_l_m_s___g_p_u}{filter\-B\-L\-M\-S\-\_\-\-G\-P\-U}.\par
 \-Alokacja pamięci, inicjalizacja zmiennych, wyznaczenie planów \-F\-F\-T.


\begin{DoxyParams}{\-Parametry}
{\em \-Nu} & -\/ liczba próbek sygnału \\
\hline
{\em \-Msize} & -\/ długość filtru \\
\hline
{\em \-Bsize} & -\/ długość bloku danych \\
\hline
{\em mi\-Param} & -\/ parametr mi filtru \\
\hline
{\em beta\-Param} & -\/ parametr beta filtru \\
\hline
{\em \-S\-R\-W} & -\/ struktura zawierająca sygnały wejściowe i wyjściowe \\
\hline
\end{DoxyParams}
\hypertarget{structfilter_b_l_m_s___g_p_u_a80fe9e10dac37307cfe41ca1b666811f}{
\index{filter\-B\-L\-M\-S\-\_\-\-G\-P\-U@{filter\-B\-L\-M\-S\-\_\-\-G\-P\-U}!$\sim$filter\-B\-L\-M\-S\-\_\-\-G\-P\-U@{$\sim$filter\-B\-L\-M\-S\-\_\-\-G\-P\-U}}
\index{$\sim$filter\-B\-L\-M\-S\-\_\-\-G\-P\-U@{$\sim$filter\-B\-L\-M\-S\-\_\-\-G\-P\-U}!filterBLMS_GPU@{filter\-B\-L\-M\-S\-\_\-\-G\-P\-U}}
\subsubsection[{$\sim$filter\-B\-L\-M\-S\-\_\-\-G\-P\-U}]{\setlength{\rightskip}{0pt plus 5cm}filter\-B\-L\-M\-S\-\_\-\-G\-P\-U\-::$\sim$filter\-B\-L\-M\-S\-\_\-\-G\-P\-U (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{structfilter_b_l_m_s___g_p_u_a80fe9e10dac37307cfe41ca1b666811f}
\-Destruktor struktury \hyperlink{structfilter_b_l_m_s___g_p_u}{filter\-B\-L\-M\-S\-\_\-\-G\-P\-U}. 

\subsection{\-Dokumentacja funkcji składowych}
\hypertarget{structfilter_b_l_m_s___g_p_u_a2ace1d987956f5e1fc61393543151f92}{
\index{filter\-B\-L\-M\-S\-\_\-\-G\-P\-U@{filter\-B\-L\-M\-S\-\_\-\-G\-P\-U}!data\-Filtering@{data\-Filtering}}
\index{data\-Filtering@{data\-Filtering}!filterBLMS_GPU@{filter\-B\-L\-M\-S\-\_\-\-G\-P\-U}}
\subsubsection[{data\-Filtering}]{\setlength{\rightskip}{0pt plus 5cm}void filter\-B\-L\-M\-S\-\_\-\-G\-P\-U\-::data\-Filtering (
\begin{DoxyParamCaption}
\item[{int}]{blocks\-Per\-Grid, }
\item[{int}]{threads\-Per\-Block, }
\item[{int}]{\-Nu}
\end{DoxyParamCaption}
)}}
\label{structfilter_b_l_m_s___g_p_u_a2ace1d987956f5e1fc61393543151f92}
\-Metoda przeprowadzająca filtrację adaptacyjną na \-G\-P\-U.


\begin{DoxyParams}{\-Parametry}
{\em blocks\-Per\-Grid} & -\/ liczba bloków (parametr uruchomieniowy kernela) \\
\hline
{\em threads\-Per\-Block} & -\/ liczba wątków w bloku (parametr uruchomieniowy kernela) \\
\hline
{\em \-Nu} & -\/ liczba próbek sygnału \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{\-Zwraca}
void 
\end{DoxyReturn}
odczytywanie bloku danych \hypertarget{structfilter_b_l_m_s___g_p_u_a1dbdd41a3fae46008f88366705171403}{
\index{filter\-B\-L\-M\-S\-\_\-\-G\-P\-U@{filter\-B\-L\-M\-S\-\_\-\-G\-P\-U}!free\-Memory@{free\-Memory}}
\index{free\-Memory@{free\-Memory}!filterBLMS_GPU@{filter\-B\-L\-M\-S\-\_\-\-G\-P\-U}}
\subsubsection[{free\-Memory}]{\setlength{\rightskip}{0pt plus 5cm}void filter\-B\-L\-M\-S\-\_\-\-G\-P\-U\-::free\-Memory (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{structfilter_b_l_m_s___g_p_u_a1dbdd41a3fae46008f88366705171403}
\-Metoda zwalniająca pamięć po strukturze \hyperlink{structfilter_b_l_m_s___g_p_u}{filter\-B\-L\-M\-S\-\_\-\-G\-P\-U}.

\begin{DoxyReturn}{\-Zwraca}
void 
\end{DoxyReturn}


\-Dokumentacja dla tej struktury została wygenerowana z plików\-:\begin{DoxyCompactItemize}
\item 
\-C\-:/\-Users/boski/\-Documents/\-Visual Studio 2008/\-Projects/cuda/blms/\hyperlink{filter_b_l_m_s___g_p_u_8h}{filter\-B\-L\-M\-S\-\_\-\-G\-P\-U.\-h}\item 
\-C\-:/\-Users/boski/\-Documents/\-Visual Studio 2008/\-Projects/cuda/blms/\hyperlink{filter_b_l_m_s___g_p_u_8cu}{filter\-B\-L\-M\-S\-\_\-\-G\-P\-U.\-cu}\end{DoxyCompactItemize}
